home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MPW Related / MPW Interfaces / PInterfaces / QuickTimeComponents.p < prev    next >
Encoding:
Text File  |  1993-09-17  |  58.2 KB  |  1,564 lines  |  [TEXT/MPS ]

  1. {************************************************************
  2.     Created: Wednesday, April 21, 1993
  3.     QuickTimeComponents.p
  4.     Pascal Interface to the Macintosh Libraries
  5.     
  6.     Copyright Apple Computer, Inc. 1990-93
  7.     All rights reserved
  8.  
  9. ************************************************************}
  10.  
  11. {$IFC UNDEFINED UsingIncludes}
  12. {$SETC UsingIncludes := 0}
  13. {$ENDC}
  14.  
  15. {$IFC NOT UsingIncludes}
  16.  UNIT QuickTimeComponents;
  17.  INTERFACE
  18. {$ENDC}
  19.  
  20. {$IFC UNDEFINED UsingQuickTimeComponents}
  21. {$SETC UsingQuickTimeComponents := 1}
  22.  
  23. {$I+}
  24. {$SETC QuickTimeComponentsIncludes := UsingIncludes}
  25. {$SETC UsingIncludes := 1}
  26. {$IFC UNDEFINED UsingComponents}
  27. {$I $$Shell(PInterfaces)Components.p}
  28. {$ENDC}
  29. {$IFC UNDEFINED UsingImageCompression}
  30. {$I $$Shell(PInterfaces)ImageCompression.p}
  31. {$ENDC}
  32. {$IFC UNDEFINED UsingMovies}
  33. {$I $$Shell(PInterfaces)Movies.p}
  34. {$ENDC}
  35. {$IFC UNDEFINED UsingQuickDraw}
  36. {$I $$Shell(PInterfaces)QuickDraw.p}
  37. {$ENDC}
  38. {$IFC UNDEFINED UsingMenus}
  39. {$I $$Shell(PInterfaces)Menus.p}
  40. {$ENDC}
  41. {$IFC UNDEFINED UsingVideo}
  42. {$I $$Shell(PInterfaces)Video.p}
  43. {$ENDC}
  44. {$SETC UsingIncludes := QuickTimeComponentsIncludes}
  45.  
  46. CONST
  47.  
  48. {****
  49.  
  50.  Clock Component
  51.  
  52. ****}
  53. clockComponentType         = 'clok';
  54. systemTickClock         = 'tick';            { subtype: 60ths since boot }
  55. systemSecondClock         = 'seco';            { subtype: 1000000ths since boot }
  56. systemMillisecondClock    = 'mill';            { subtype: 1000ths since boot    }
  57. systemMicrosecondClock    = 'micr';            { subtype: 1000000ths since boot }
  58.  
  59. kClockRateIsLinear = 1;
  60. kClockImplementsCallBacks = 2;
  61.  
  62.  
  63.  
  64. kClockGetClockTimeSelect = $1;
  65. kClockNewCallBackSelect = $2;
  66. kClockDisposeCallBackSelect = $3;
  67. kClockCallMeWhenSelect = $4;
  68. kClockCancelCallBackSelect = $5;
  69. kClockRateChangedSelect = $6;
  70. kClockTimeChangedSelect = $7;
  71. kClockSetTimeBaseSelect = $8;
  72. kClockStartStopChangedSelect = $9;
  73. kClockGetRateSelect = $A;
  74.  
  75. { Same Calls }
  76. FUNCTION ClockGetTime(aClock: ComponentInstance;VAR out: TimeRecord): ComponentResult;
  77.  INLINE $2F3C,$4,$1,$7000,$A82A;
  78. FUNCTION GetClockTime(aClock: ComponentInstance;VAR out: TimeRecord): ComponentResult;
  79.  INLINE $2F3C,$4,$1,$7000,$A82A;
  80.  
  81. FUNCTION ClockNewCallBack(aClock: ComponentInstance;tb: TimeBase;callBackType: INTEGER): QTCallBack;
  82.  INLINE $2F3C,$6,$2,$7000,$A82A;
  83. FUNCTION ClockDisposeCallBack(aClock: ComponentInstance;cb: QTCallBack): ComponentResult;
  84.  INLINE $2F3C,$4,$3,$7000,$A82A;
  85. FUNCTION ClockCallMeWhen(clock: ComponentInstance;cb: QTCallBack;param1: LONGINT;
  86.  param2: LONGINT;param3: LONGINT): ComponentResult;
  87.  INLINE $2F3C,$10,$4,$7000,$A82A;
  88. FUNCTION ClockCancelCallBack(clock: ComponentInstance;cb: QTCallBack): ComponentResult;
  89.  INLINE $2F3C,$4,$5,$7000,$A82A;
  90. FUNCTION ClockRateChanged(clock: ComponentInstance;cb: QTCallBack): ComponentResult;
  91.  INLINE $2F3C,$4,$6,$7000,$A82A;
  92. FUNCTION ClockTimeChanged(clock: ComponentInstance;cb: QTCallBack): ComponentResult;
  93.  INLINE $2F3C,$4,$7,$7000,$A82A;
  94. FUNCTION ClockSetTimeBase(clock: ComponentInstance;tb: TimeBase): ComponentResult;
  95.  INLINE $2F3C,$4,$8,$7000,$A82A;
  96. FUNCTION ClockStartStopChanged(clock: ComponentInstance;cb: QTCallBack; startChanged: Boolean; stopChanged: Boolean): ComponentResult;
  97.  INLINE $2F3C,$8,$9,$7000,$A82A;
  98. FUNCTION ClockGetRate(aClock:ComponentInstance;VAR rate:Fixed) :ComponentResult;
  99.  INLINE $2F3C,$4,$A,$7000,$A82A;
  100.  
  101.  
  102.  
  103. TYPE
  104. { Sequence Grab Component }
  105. SeqGrabComponent = ComponentInstance;
  106. SGChannel = ComponentInstance;
  107.  
  108. CONST
  109. SeqGrabComponentType = 'barg';
  110. SeqGrabChannelType = 'sgch';
  111.  
  112. SeqGrabPanelType = 'sgpn';
  113. SeqGrabCompressionPanelType = 'comp';
  114. SeqGrabSourcePanelType = 'sour';
  115.  
  116. seqGrabToDisk = 1;
  117. seqGrabToMemory = 2;
  118. seqGrabUseTempMemory = 4;
  119. seqGrabAppendToFile = 8;
  120. seqGrabDontAddMovieResource = $10;
  121. seqGrabDontMakeMovie = $20;
  122. seqGrabPreExtendFile = $40;
  123.  
  124. TYPE
  125. SeqGrabDataOutputEnum = LONGINT;
  126.  
  127. CONST
  128. seqGrabRecord = 1;
  129. seqGrabPreview = 2;
  130. seqGrabPlayDuringRecord = 4;
  131.  
  132. TYPE 
  133. SeqGrabUsageEnum = LONGINT;
  134.  
  135. CONST
  136. seqGrabHasBounds = 1;
  137. seqGrabHasVolume = 2;
  138. seqGrabHasDiscreteSamples = 4;
  139.  
  140. TYPE
  141. SeqGrabChannelInfoEnum = LONGINT;
  142.  
  143. SeqGrabFrameInfo = RECORD
  144.  frameOffset: LONGINT;
  145.  frameTime: LONGINT;
  146.  frameSize: LONGINT;
  147.  frameChannel: SGChannel;
  148.  frameRefCon: LONGINT;
  149.  END;
  150.  
  151. CONST
  152. grabPictOffScreen         = 1;
  153. grabPictIgnoreClip         = 2;
  154. grabPictCurrentImage     = 4;
  155.  
  156. sgFlagControlledGrab = 1;
  157.  
  158. TYPE
  159. SGDataProc = ProcPtr;
  160.  
  161. SGDeviceName = RECORD
  162.         name    : Str63;
  163.         icon    : Handle;
  164.         flags    : LONGINT;
  165.         refCon    : LONGINT;
  166.         reserved: LONGINT;        { zero }
  167. END;
  168.  
  169. CONST
  170. sgDeviceNameFlagDeviceUnavailable = 1;
  171.  
  172. TYPE
  173. SGDeviceListPtr = ^SGDeviceListRecord;
  174. SGDeviceList = ^SGDeviceListPtr;
  175. SGDeviceListRecord = RECORD
  176.     count:INTEGER;
  177.     selectedIndex:INTEGER;
  178.     reserved:LONGINT;
  179.     entry:ARRAY[0..0] OF SGDeviceName;
  180. END;
  181.  
  182. CONST
  183. sgDeviceListWithIcons = 1;
  184. sgDeviceListDontCheckAvailability = 2;
  185.  
  186. seqGrabWriteAppend = 0;
  187. seqGrabWriteReserve = 1;
  188. seqGrabWrite = 2;
  189.  
  190. seqGrabUnpause = 0;
  191. seqGrabPause = 1;
  192. seqGrabPauseForMenu = 3;
  193.  
  194. channelFlagDontOpenResFile = 2;
  195. channelFlagHasDependency = 4;
  196.  
  197. TYPE
  198. SGModalFilterProcPtr = ProcPtr;
  199.  
  200. CONST
  201. sgPanelFlagForPanel = 1;
  202.  
  203.  
  204. channelPlayNormal = 0;
  205. channelPlayFast = 1;
  206. channelPlayHighQuality = 2;
  207. channelPlayAllData = 4;
  208.  
  209.  
  210. FUNCTION SGInitialize(s: SeqGrabComponent): ComponentResult;
  211.  INLINE $2F3C,$0,$1,$7000,$A82A;
  212.  
  213. FUNCTION SGSetDataOutput(s: SeqGrabComponent;movieFile: FSSpec;whereFlags: LONGINT): ComponentResult;
  214.  INLINE $2F3C,$8,$2,$7000,$A82A;
  215. FUNCTION SGGetDataOutput(s: SeqGrabComponent;VAR movieFile: FSSpec;VAR whereFlags: LONGINT): ComponentResult;
  216.  INLINE $2F3C,$8,$3,$7000,$A82A;
  217.  
  218. FUNCTION SGSetGWorld(s: SeqGrabComponent;gp: CGrafPtr;gd: GDHandle): ComponentResult;
  219.  INLINE $2F3C,$8,$4,$7000,$A82A;
  220. FUNCTION SGGetGWorld(s: SeqGrabComponent;VAR gp: CGrafPtr;VAR gd: GDHandle): ComponentResult;
  221.  INLINE $2F3C,$8,$5,$7000,$A82A;
  222.  
  223. FUNCTION SGNewChannel(s: SeqGrabComponent;channelType: OSType;VAR ref: SGChannel): ComponentResult;
  224.  INLINE $2F3C,$8,$6,$7000,$A82A;
  225. FUNCTION SGDisposeChannel(s: SeqGrabComponent;c: SGChannel): ComponentResult;
  226.  INLINE $2F3C,$4,$7,$7000,$A82A;
  227.  
  228. FUNCTION SGStartPreview(s: SeqGrabComponent): ComponentResult;
  229.  INLINE $2F3C,$0,$10,$7000,$A82A;
  230. FUNCTION SGStartRecord(s: SeqGrabComponent): ComponentResult;
  231.  INLINE $2F3C,$0,$11,$7000,$A82A;
  232. FUNCTION SGIdle(s: SeqGrabComponent): ComponentResult;
  233.  INLINE $2F3C,$0,$12,$7000,$A82A;
  234. FUNCTION SGStop(s: SeqGrabComponent): ComponentResult;
  235.  INLINE $2F3C,$0,$13,$7000,$A82A;
  236.  
  237. FUNCTION SGPause(s: SeqGrabComponent;pause: BOOLEAN): ComponentResult;
  238.  INLINE $2F3C,$2,$14,$7000,$A82A;
  239.  
  240. FUNCTION SGPrepare(s: SeqGrabComponent;prepareForPreview: BOOLEAN;prepareForRecord: BOOLEAN): ComponentResult;
  241.  INLINE $2F3C,$4,$15,$7000,$A82A;
  242. FUNCTION SGRelease(s: SeqGrabComponent): ComponentResult;
  243.  INLINE $2F3C,$0,$16,$7000,$A82A;
  244.  
  245. FUNCTION SGGetMovie(s: SeqGrabComponent): Movie;
  246.  INLINE $2F3C,$0,$17,$7000,$A82A;
  247.  
  248. FUNCTION SGSetMaximumRecordTime(s: SeqGrabComponent;ticks: LONGINT): ComponentResult;
  249.  INLINE $2F3C,$4,$18,$7000,$A82A;
  250. FUNCTION SGGetMaximumRecordTime(s: SeqGrabComponent;VAR ticks: LONGINT): ComponentResult;
  251.  INLINE $2F3C,$4,$19,$7000,$A82A;
  252.  
  253. FUNCTION SGGetStorageSpaceRemaining(s: SeqGrabComponent;VAR bytes: LONGINT): ComponentResult;
  254.  INLINE $2F3C,$4,$1A,$7000,$A82A;
  255. FUNCTION SGGetTimeRemaining(s: SeqGrabComponent;VAR ticksLeft: LONGINT): ComponentResult;
  256.  INLINE $2F3C,$4,$1B,$7000,$A82A;
  257.  
  258.  
  259. FUNCTION SGGrabPict(s: SeqGrabComponent; VAR p: PicHandle; bounds: Rect;
  260.  offscreenDepth: INTEGER; grabPictFlags: LONGINT): ComponentResult;
  261.  INLINE $2F3C,$E,$1C,$7000,$A82A;
  262.  
  263. FUNCTION SGGetLastMovieResID(s: SeqGrabComponent; VAR resID: INTEGER): ComponentResult;
  264.  INLINE $2F3C,$4,$1D,$7000,$A82A;
  265.  
  266. FUNCTION SGSetFlags(s: SeqGrabComponent; sgFlags: LONGINT): ComponentResult;
  267.  INLINE $2F3C,$4,$1E,$7000,$A82A;
  268. FUNCTION SGGetFlags(s: SeqGrabComponent; VAR sgFlags: LONGINT): ComponentResult;
  269.  INLINE $2F3C,$4,$1F,$7000,$A82A;
  270.  
  271. FUNCTION SGSetDataProc (s:SeqGrabComponent;proc:SGDataProc;refCon:LONGINT):ComponentResult;
  272.  INLINE $2F3C,$8,$20,$7000,$A82A;
  273. FUNCTION SGNewChannelFromComponent (s:SeqGrabComponent;VAR newChannel:SGChannel; 
  274.     sgChannelComponent:Component):ComponentResult;
  275.  INLINE $2F3C,$8,$21,$7000,$A82A;
  276. FUNCTION SGDisposeDeviceList (s:SeqGrabComponent;list:SGDeviceList):ComponentResult;
  277.  INLINE $2F3C,$4,$22,$7000,$A82A;
  278. FUNCTION SGAppendDeviceListToMenu (s:SeqGrabComponent;list:SGDeviceList;mh: MenuHandle):ComponentResult;
  279.  INLINE $2F3C,$8,$23,$7000,$A82A;
  280. FUNCTION SGSetSettings (s:SeqGrabComponent; ud:UserData;flags:LONGINT):ComponentResult;
  281.  INLINE $2F3C,$8,$24,$7000,$A82A;
  282. FUNCTION SGGetSettings (s:SeqGrabComponent; VAR ud:UserData; flags:LONGINT):ComponentResult;
  283.  INLINE $2F3C,$8,$25,$7000,$A82A;
  284. FUNCTION SGGetIndChannel (s:SeqGrabComponent;index:INTEGER; VAR ref: SGChannel;VAR chanType: OSType):ComponentResult;
  285.  INLINE $2F3C,$A,$26,$7000,$A82A;
  286. FUNCTION SGUpdate (s:SeqGrabComponent; updateRgn:RgnHandle):ComponentResult;
  287.  INLINE $2F3C,$4,$27,$7000,$A82A;
  288. FUNCTION SGGetPause (s:SeqGrabComponent; VAR paused:Byte):ComponentResult;
  289.  INLINE $2F3C,$4,$28,$7000,$A82A;
  290. FUNCTION SGSettingsDialog (s:SeqGrabComponent;c:SGChannel; numPanels:INTEGER;
  291.     VAR panelList:Component; flags:LONGINT; proc:SGModalFilterProcPtr ; procRefNum:LONGINT):ComponentResult;
  292.  INLINE $2F3C,$16,$29,$7000,$A82A;
  293. FUNCTION SGGetAlignmentProc (s:SeqGrabComponent;alignmentProc:AlignmentProcRecordPtr ):ComponentResult;
  294.  INLINE $2F3C,$4,$2A,$7000,$A82A;
  295. FUNCTION SGSetChannelSettings (s:SeqGrabComponent;c:SGChannel; ud:UserData;flags:LONGINT):ComponentResult;
  296.  INLINE $2F3C,$C,$2B,$7000,$A82A;
  297. FUNCTION SGGetChannelSettings (s:SeqGrabComponent;c:SGChannel; VAR ud:UserData;flags:LONGINT):ComponentResult;
  298.  INLINE $2F3C,$C,$2C,$7000,$A82A;
  299.  
  300.  {   calls from Channel to seqGrab   }
  301. FUNCTION SGWriteMovieData(s: SeqGrabComponent;c: SGChannel;p: Ptr;len: LONGINT;
  302.  VAR offset: LONGINT): ComponentResult;
  303.  INLINE $2F3C,$10,$100,$7000,$A82A;
  304. FUNCTION SGAddFrameReference(s: SeqGrabComponent;VAR frameInfo: SeqGrabFrameInfo): ComponentResult;
  305.  INLINE $2F3C,$4,$101,$7000,$A82A;
  306. FUNCTION SGGetNextFrameReference(s: SeqGrabComponent;VAR frameInfo: SeqGrabFrameInfo;
  307.  VAR frameDuration: TimeValue;VAR frameNumber: LONGINT): ComponentResult;
  308.  INLINE $2F3C,$C,$102,$7000,$A82A;
  309. FUNCTION SGGetTimeBase(s: SeqGrabComponent;VAR tb: TimeBase): ComponentResult;
  310.  INLINE $2F3C,$4,$103,$7000,$A82A;
  311. FUNCTION SGSortDeviceList (s:SeqGrabComponent;list:SGDeviceList):ComponentResult;
  312.  INLINE $2F3C,$4,$104,$7000,$A82A;
  313. FUNCTION SGAddMovieData (s:SeqGrabComponent;c:SGChannel;p:Ptr;len:LONGINT; VAR offset:LONGINT; 
  314.     chRefCon:LONGINT; time:TimeValue; writeType:INTEGER):ComponentResult;
  315.  INLINE $2F3C,$1A,$105,$7000,$A82A;
  316. FUNCTION SGChangedSource (s:SeqGrabComponent;c:SGChannel):ComponentResult;
  317.  INLINE $2F3C,$4,$106,$7000,$A82A;
  318.  
  319.  
  320.  
  321.  {   General Channel Routines   }
  322. FUNCTION SGSetChannelUsage(c: SGChannel;usage: LONGINT): ComponentResult;
  323.  INLINE $2F3C,$4,$80,$7000,$A82A;
  324. FUNCTION SGGetChannelUsage(c: SGChannel;VAR usage: LONGINT): ComponentResult;
  325.  INLINE $2F3C,$4,$81,$7000,$A82A;
  326.  
  327. FUNCTION SGSetChannelBounds(c: SGChannel;bounds: Rect): ComponentResult;
  328.  INLINE $2F3C,$4,$82,$7000,$A82A;
  329. FUNCTION SGGetChannelBounds(c: SGChannel;VAR bounds: Rect): ComponentResult;
  330.  INLINE $2F3C,$4,$83,$7000,$A82A;
  331.  
  332. FUNCTION SGSetChannelVolume(c: SGChannel;volume: INTEGER): ComponentResult;
  333.  INLINE $2F3C,$2,$84,$7000,$A82A;
  334. FUNCTION SGGetChannelVolume(c: SGChannel;VAR volume: INTEGER): ComponentResult;
  335.  INLINE $2F3C,$4,$85,$7000,$A82A;
  336.  
  337. FUNCTION SGGetChannelInfo(c: SGChannel;VAR channelInfo: LONGINT): ComponentResult;
  338.  INLINE $2F3C,$4,$86,$7000,$A82A;
  339.  
  340. FUNCTION SGSetChannelPlayFlags(c: SGChannel;playFlags: LONGINT): ComponentResult;
  341.  INLINE $2F3C,$4,$87,$7000,$A82A;
  342. FUNCTION SGGetChannelPlayFlags(c: SGChannel;VAR playFlags: LONGINT): ComponentResult;
  343.  INLINE $2F3C,$4,$88,$7000,$A82A;
  344.  
  345. FUNCTION SGSetChannelMaxFrames(c: SGChannel;frameCount: LONGINT): ComponentResult;
  346.  INLINE $2F3C,$4,$89,$7000,$A82A;
  347. FUNCTION SGGetChannelMaxFrames(c: SGChannel;VAR frameCount: LONGINT): ComponentResult;
  348.  INLINE $2F3C,$4,$8A,$7000,$A82A;
  349.  
  350. FUNCTION SGSetChannelRefCon(c: SGChannel;refCon: LONGINT): ComponentResult;
  351.  INLINE $2F3C,$4,$8B,$7000,$A82A;
  352.  
  353. FUNCTION SGSetChannelClip (c:SGChannel; theClip:RgnHandle ):ComponentResult;
  354.  INLINE $2F3C,$4,$8C,$7000,$A82A;
  355.  
  356. FUNCTION SGGetChannelClip (c:SGChannel ;VAR theClip:RgnHandle):ComponentResult;
  357.  INLINE $2F3C,$4,$8D,$7000,$A82A;
  358.  
  359. FUNCTION SGGetChannelSampleDescription (c:SGChannel;sampleDesc:Handle):ComponentResult;
  360.  INLINE $2F3C,$4,$8E,$7000,$A82A;
  361.  
  362. FUNCTION SGGetChannelDeviceList (c:SGChannel; selectionFlags:LONGINT;VAR list: SGDeviceList):ComponentResult;
  363.  INLINE $2F3C,$8,$8F,$7000,$A82A;
  364.  
  365. FUNCTION SGSetChannelDevice (c:SGChannel; name:StringPtr):ComponentResult;
  366.  INLINE $2F3C,$4,$90,$7000,$A82A;
  367.  
  368. FUNCTION SGSetChannelMatrix (c:SGChannel; VAR m:MatrixRecord):ComponentResult;
  369.  INLINE $2F3C,$4,$91,$7000,$A82A;
  370.  
  371. FUNCTION SGGetChannelMatrix (c:SGChannel; VAR m:MatrixRecord):ComponentResult;
  372.  INLINE $2F3C,$4,$92,$7000,$A82A;
  373.  
  374. FUNCTION SGGetChannelTimeScale (c:SGChannel; VAR scale:TimeScale):ComponentResult;
  375.  INLINE $2F3C,$4,$93,$7000,$A82A;
  376.  
  377. {   calls from seqGrab to Channel   }
  378. FUNCTION SGInitChannel(c: SGChannel;owner: SeqGrabComponent): ComponentResult;
  379.  INLINE $2F3C,$4,$180,$7000,$A82A;
  380. FUNCTION SGWriteSamples(c: SGChannel;m: Movie;theFile: AliasHandle): ComponentResult;
  381.  INLINE $2F3C,$8,$181,$7000,$A82A;
  382. FUNCTION SGGetDataRate(c: SGChannel;VAR bytesPerSecond: LONGINT): ComponentResult;
  383.  INLINE $2F3C,$4,$182,$7000,$A82A;
  384. FUNCTION SGAlignChannelRect (c:SGChannel; VAR r:Rect):ComponentResult;
  385.  INLINE $2F3C,$4,$183,$7000,$A82A;
  386.  
  387. FUNCTION SGPanelGetDitl(s:SeqGrabComponent; VAR ditl:Handle):ComponentResult;
  388.  INLINE $2F3C,$4,$200,$7000,$A82A;
  389. FUNCTION SGPanelGetTitle (s:SeqGrabComponent; title:Str255 ):ComponentResult;
  390.  INLINE $2F3C,$4,$201,$7000,$A82A;
  391. FUNCTION SGPanelCanRun(s:SeqGrabComponent; c:SGChannel):ComponentResult;
  392.  INLINE $2F3C,$4,$202,$7000,$A82A;
  393. FUNCTION SGPanelInstall (s:SeqGrabComponent; c:SGChannel; d: DialogPtr; itemOffset:INTEGER):ComponentResult;
  394.  INLINE $2F3C,$A,$203,$7000,$A82A;
  395. FUNCTION SGPanelEvent(s:SeqGrabComponent; c:SGChannel; d: DialogPtr; itemOffset:INTEGER;
  396.         VAR theEvent:EventRecord; VAR itemHit:INTEGER; VAR handled:BOOLEAN):ComponentResult;
  397.  INLINE $2F3C,$16,$204,$7000,$A82A;
  398. FUNCTION SGPanelItem(s:SeqGrabComponent; c:SGChannel;d: DialogPtr; 
  399.     itemOffset:INTEGER; itemNum: INTEGER) :ComponentResult;
  400.  INLINE $2F3C,$C,$205,$7000,$A82A;
  401. FUNCTION SGPanelRemove(s:SeqGrabComponent; c:SGChannel; d: DialogPtr; 
  402.     itemOffset:INTEGER):ComponentResult;
  403.  INLINE $2F3C,$A,$206,$7000,$A82A;
  404. FUNCTION SGPanelSetGrabber(s:SeqGrabComponent; sg:SeqGrabComponent ):ComponentResult;
  405.  INLINE $2F3C,$4,$207,$7000,$A82A;
  406. FUNCTION SGPanelSetResFile(s:SeqGrabComponent;  resRef:INTEGER):ComponentResult;
  407.  INLINE $2F3C,$2,$208,$7000,$A82A;
  408. FUNCTION SGPanelGetSettings(s:SeqGrabComponent; c:SGChannel; VAR ud:UserData;
  409.     flags:LONGINT) :ComponentResult;
  410.  INLINE $2F3C,$C,$209,$7000,$A82A;
  411. FUNCTION SGPanelSetSettings(s:SeqGrabComponent; c:SGChannel; ud:UserData;
  412.      flags:LONGINT):ComponentResult;
  413.  INLINE $2F3C,$C,$20A,$7000,$A82A;
  414. FUNCTION SGPanelValidateInput(s:SeqGrabComponent; VAR ok:BOOLEAN) :ComponentResult;
  415.  INLINE $2F3C,$4,$20B,$7000,$A82A;
  416.  
  417.  
  418. TYPE
  419. { Video Routines }
  420.  
  421. SGCompressInfo = PACKED RECORD
  422.   buffer: Ptr;
  423.   bufferSize: LONGINT;
  424.   similarity: CHAR;
  425.   reserved: CHAR;
  426.  END;
  427.  
  428. GrabProc = ProcPtr;
  429. GrabCompleteProc = ProcPtr;
  430. DisplayProc = ProcPtr;
  431. CompressProc = ProcPtr;
  432. CompressCompleteProc = ProcPtr;
  433. AddFrameProc = ProcPtr;
  434. TransferFrameProc = ProcPtr;
  435. GrabCompressCompleteProc = ProcPtr;
  436. DisplayCompressProc = ProcPtr;
  437.  
  438. VideoBottles = RECORD
  439.  procCount: INTEGER;
  440.  grabProc: GrabProc;
  441.  grabCompleteProc: GrabCompleteProc;
  442.  displayProc: DisplayProc;
  443.  compressProc: CompressProc;
  444.  compressCompleteProc: CompressCompleteProc;
  445.  addFrameProc: AddFrameProc;
  446.  transferFrameProc: TransferFrameProc;
  447.  grabCompressCompleteProc:GrabCompressCompleteProc;
  448.  displayCompressProc:DisplayCompressProc;
  449.  END;
  450.  
  451.  
  452.  
  453.  
  454. FUNCTION SGGetSrcVideoBounds(c: SGChannel;VAR r: Rect): ComponentResult;
  455.  INLINE $2F3C,$4,$100,$7000,$A82A;
  456. FUNCTION SGSetVideoRect(c: SGChannel;r: Rect): ComponentResult;
  457.  INLINE $2F3C,$4,$101,$7000,$A82A;
  458. FUNCTION SGGetVideoRect(c: SGChannel;VAR r: Rect): ComponentResult;
  459.  INLINE $2F3C,$4,$102,$7000,$A82A;
  460.  
  461. FUNCTION SGGetVideoCompressorType(c: SGChannel;VAR compressorType: OSType): ComponentResult;
  462.  INLINE $2F3C,$4,$103,$7000,$A82A;
  463. FUNCTION SGSetVideoCompressorType(c: SGChannel;compressorType: OSType): ComponentResult;
  464.  INLINE $2F3C,$4,$104,$7000,$A82A;
  465.  
  466. FUNCTION SGSetVideoCompressor(c: SGChannel;depth: INTEGER;compressor: CompressorComponent;
  467.  spatialQuality: CodecQ;temporalQuality: CodecQ;keyFrameRate: LONGINT): ComponentResult;
  468.  INLINE $2F3C,$12,$105,$7000,$A82A;
  469. FUNCTION SGGetVideoCompressor(c: SGChannel;VAR depth: INTEGER;VAR compressor: CompressorComponent;
  470.  VAR spatialQuality: CodecQ;VAR temporalQuality: CodecQ;VAR keyFrameRate: LONGINT): ComponentResult;
  471.  INLINE $2F3C,$14,$106,$7000,$A82A;
  472.  
  473. FUNCTION SGGetVideoDigitizerComponent(c: SGChannel): ComponentInstance;
  474.  INLINE $2F3C,$0,$107,$7000,$A82A;
  475. FUNCTION SGSetVideoDigitizerComponent(c: SGChannel;vdig: ComponentInstance): ComponentResult;
  476.  INLINE $2F3C,$4,$108,$7000,$A82A;
  477. FUNCTION SGVideoDigitizerChanged(c: SGChannel): ComponentResult;
  478.  INLINE $2F3C,$0,$109,$7000,$A82A;
  479.  
  480. FUNCTION SGSetVideoBottlenecks(c: SGChannel;VAR vb: VideoBottles): ComponentResult;
  481.  INLINE $2F3C,$4,$10A,$7000,$A82A;
  482. FUNCTION SGGetVideoBottlenecks(c: SGChannel;VAR vb: VideoBottles): ComponentResult;
  483.  INLINE $2F3C,$4,$10B,$7000,$A82A;
  484.  
  485. FUNCTION SGGrabFrame(c: SGChannel;bufferNum: INTEGER): ComponentResult;
  486.  INLINE $2F3C,$2,$10C,$7000,$A82A;
  487. FUNCTION SGGrabFrameComplete(c: SGChannel;bufferNum:INTEGER;VAR done:Boolean): ComponentResult;
  488.  INLINE $2F3C,$6,$10D,$7000,$A82A;
  489.  
  490. FUNCTION SGDisplayFrame(c: SGChannel;bufferNum: INTEGER;mp: MatrixRecord;
  491.  clipRgn: RgnHandle): ComponentResult;
  492.  INLINE $2F3C,$A,$10E,$7000,$A82A;
  493. FUNCTION SGCompressFrame(c: SGChannel;bufferNum:INTEGER): ComponentResult;
  494.  INLINE $2F3C,$2,$10F,$7000,$A82A;
  495. FUNCTION SGCompressFrameComplete(c: SGChannel;bufferNum:INTEGER;VAR done:Boolean;
  496.  VAR ci:SGCompressInfo): ComponentResult;
  497.  INLINE $2F3C,$A,$110,$7000,$A82A;
  498. FUNCTION SGAddFrame(c: SGChannel;bufferNum:INTEGER;atTime: TimeValue;scale: TimeScale;
  499.  ci: SGCompressInfo): ComponentResult;
  500.  INLINE $2F3C,$E,$111,$7000,$A82A;
  501.  
  502. FUNCTION SGTransferFrameForCompress(c: SGChannel;bufferNum:INTEGER;mp: MatrixRecord;
  503.  clipRgn: RgnHandle): ComponentResult;
  504.  INLINE $2F3C,$A,$112,$7000,$A82A;
  505.  
  506. FUNCTION SGSetCompressBuffer(c: SGChannel;depth: INTEGER;compressSize: Rect): ComponentResult;
  507.  INLINE $2F3C,$6,$113,$7000,$A82A;
  508.  
  509. FUNCTION SGGetCompressBuffer(c: SGChannel;VAR depth: INTEGER; VAR compressSize: Rect): ComponentResult;
  510.  INLINE $2F3C,$8,$114,$7000,$A82A;
  511.  
  512. FUNCTION SGGetBufferInfo(c: SGChannel;bufferNum: INTEGER; VAR bufferPM: PixMapHandle;
  513.  VAR bufferRect: Rect;VAR compressBuffer: GWorldPtr;
  514.  VAR compressBufferRect: Rect): ComponentResult;
  515.  INLINE $2F3C,$12,$115,$7000,$A82A;
  516.  
  517. FUNCTION SGSetUseScreenBuffer (c:SGChannel; useScreenBuffer:BOOLEAN ):ComponentResult;  
  518.  INLINE $2F3C,$2,$116,$7000,$A82A;
  519.  
  520. FUNCTION SGGetUseScreenBuffer (c:SGChannel; VAR useScreenBuffer:BOOLEAN):ComponentResult;  
  521.  INLINE $2F3C,$4,$117,$7000,$A82A;
  522.  
  523. FUNCTION SGGrabCompressComplete (c:SGChannel; VAR done:BOOLEAN; VAR ci:SGCompressInfo; VAR tr:TimeRecord) :ComponentResult; 
  524.  INLINE $2F3C,$C,$118,$7000,$A82A;
  525. FUNCTION SGDisplayCompress (c:SGChannel; dataPtr:Ptr;desc:ImageDescriptionHandle; VAR mp: MatrixRecord; clipRgn:RgnHandle ):ComponentResult;  
  526.  INLINE $2F3C,$10,$119,$7000,$A82A;
  527.  
  528. FUNCTION SGSetFrameRate (c:SGChannel; frameRate:Fixed ):ComponentResult;  
  529.  INLINE $2F3C,$4,$11A,$7000,$A82A;
  530.  
  531. FUNCTION SGGetFrameRate (c:SGChannel; VAR frameRate:Fixed):ComponentResult;  
  532.  INLINE $2F3C,$4,$11B,$7000,$A82A;
  533.  
  534.  
  535.  
  536.  
  537. {   Sound Routines   }
  538. FUNCTION SGSetSoundInputDriver(c: SGChannel;driverName: Str255): ComponentResult;
  539.  INLINE $2F3C,$4,$100,$7000,$A82A;
  540. FUNCTION SGGetSoundInputDriver(c: SGChannel): LONGINT;
  541.  INLINE $2F3C,$0,$101,$7000,$A82A;
  542. FUNCTION SGSoundInputDriverChanged(c: SGChannel): ComponentResult;
  543.  INLINE $2F3C,$0,$102,$7000,$A82A;
  544.  
  545. FUNCTION SGSetSoundRecordChunkSize(c: SGChannel;seconds: LONGINT): ComponentResult;
  546.  INLINE $2F3C,$4,$103,$7000,$A82A;
  547. FUNCTION SGGetSoundRecordChunkSize(c: SGChannel): LONGINT;
  548.  INLINE $2F3C,$0,$104,$7000,$A82A;
  549.  
  550. FUNCTION SGSetSoundInputRate(c: SGChannel;rate: Fixed): ComponentResult;
  551.  INLINE $2F3C,$4,$105,$7000,$A82A;
  552. FUNCTION SGGetSoundInputRate(c: SGChannel): Fixed;
  553.  INLINE $2F3C,$0,$106,$7000,$A82A;
  554.  
  555. FUNCTION SGSetSoundInputParameters (c:SGChannel; sampleSize:INTEGER; numChannels:INTEGER;
  556.                         compressionType:OSType ):ComponentResult;
  557.     INLINE $2F3C,$8,$107,$7000,$A82A;
  558. FUNCTION SGGetSoundInputParameters (c:SGChannel; VAR sampleSize:INTEGER; VAR numChannels:INTEGER;
  559.                         VAR compressionType:OSType ):ComponentResult;
  560.     INLINE $2F3C,$C,$108,$7000,$A82A;
  561.  
  562.  
  563.  
  564. CONST
  565. sgChannelAtom = 'chan';
  566.  
  567. sgChannelSettingsAtom ='ctom';
  568. sgChannelDescription ='cdsc';
  569. sgChannelSettings ='cset';
  570.  
  571. sgDeviceNameType ='name';
  572. sgUsageType ='use ';
  573. sgPlayFlagsType ='plyf';
  574. sgClipType ='clip';
  575. sgMatrixType ='mtrx';
  576. sgVolumeType ='volu';
  577.  
  578. sgPanelSettingsAtom ='ptom';
  579. sgPanelDescription ='pdsc';
  580. sgPanelSettings ='pset';
  581.  
  582. sgcSoundCompressionType ='scmp';
  583. sgcSoundSampleRateType ='srat';
  584. sgcSoundChannelCountType ='schn';
  585. sgcSoundSampleSizeType ='ssiz';
  586. sgcSoundInputType ='sinp';
  587. sgcSoundGainType ='gain';
  588.  
  589. sgcVideoHueType ='hue ';
  590. sgcVideoSaturationType ='satr';
  591. sgcVideoContrastType ='trst';
  592. sgcVideoSharpnessType ='shrp';
  593. sgcVideoBrigtnessType ='brit';
  594. sgcVideoBlackLevelType ='blkl';
  595. sgcVideoWhiteLevelType ='whtl';
  596.  
  597. sgcVideoInputType ='vinp';
  598. sgcVideoFormatType ='vstd';
  599. sgcVideoFilterType ='vflt';
  600.  
  601. sgcVideoRectType ='vrct';
  602. sgVideoDigitizerType ='vdig';
  603.  
  604. noDeviceForChannel = -9400;
  605. grabTimeComplete = -9401;
  606. cantDoThatInCurrentMode = -9402;
  607. notEnoughMemoryToGrab = -9403;
  608. notEnoughDiskSpaceToGrab = -9404;
  609. couldntGetRequiredComponent = -9405;
  610. badSGChannel = -9406;
  611. seqGrabInfoNotAvailable = -9407;
  612. deviceCantMeetRequest = -9408;
  613.  
  614.     kSGInitializeSelect = $1;
  615.     kSGSetDataOutputSelect = $2;
  616.     kSGGetDataOutputSelect = $3;
  617.     kSGSetGWorldSelect = $4;
  618.     kSGGetGWorldSelect = $5;
  619.     kSGNewChannelSelect = $6;
  620.     kSGDisposeChannelSelect = $7;
  621.     kSGStartPreviewSelect = $10;
  622.     kSGStartRecordSelect = $11;
  623.     kSGIdleSelect = $12;
  624.     kSGStopSelect = $13;
  625.     kSGPauseSelect = $14;
  626.     kSGPrepareSelect = $15;
  627.     kSGReleaseSelect = $16;
  628.     kSGGetMovieSelect = $17;
  629.     kSGSetMaximumRecordTimeSelect = $18;
  630.     kSGGetMaximumRecordTimeSelect = $19;
  631.     kSGGetStorageSpaceRemainingSelect = $1A;
  632.     kSGGetTimeRemainingSelect = $1B;
  633.     kSGGrabPictSelect = $1C;
  634.     kSGGetLastMovieResIDSelect = $1D;
  635.     kSGSetFlagsSelect = $1E;
  636.     kSGGetFlagsSelect = $1F;
  637.  
  638.     kSGSetDataProcSelect = $20;
  639.     kSGNewChannelFromComponentSelect = $21;
  640.     kSGDisposeDeviceListSelect = $22;
  641.     kSGAppendDeviceListToMenuSelect = $23;
  642.     kSGSetSettingsSelect = $24;
  643.     kSGGetSettingsSelect = $25;
  644.     kSGGetIndChannelSelect = $26;
  645.     kSGUpdateSelect = $27;
  646.     kSGGetPauseSelect = $28;
  647.     kSGSettingsDialogSelect = $29;
  648.     kSGGetAlignmentProcSelect = $2A;
  649.     kSGSetChannelSettingsSelect = $2B;
  650.     kSGGetChannelSettingsSelect = $2C;
  651.     
  652.     kSGWriteMovieDataSelect = $100;
  653.     kSGAddFrameReferenceSelect = $101;
  654.     kSGGetNextFrameReferenceSelect = $102;
  655.     kSGGetTimeBaseSelect = $103;
  656.     kSGSortDeviceListSelect = $104;
  657.     kSGAddMovieDataSelect = $105;
  658.     kSGChangedSourceSelect = $106;
  659.  
  660.     kSGCSetChannelUsageSelect = $80;
  661.     kSGCGetChannelUsageSelect = $81;
  662.     kSGCSetChannelBoundsSelect = $82;
  663.     kSGCGetChannelBoundsSelect = $83;
  664.     kSGCSetChannelVolumeSelect = $84;
  665.     kSGCGetChannelVolumeSelect = $85;
  666.     kSGCGetChannelInfoSelect = $86;
  667.     kSGCSetChannelPlayFlagsSelect = $87;
  668.     kSGCGetChannelPlayFlagsSelect = $88;
  669.     kSGCSetChannelMaxFramesSelect = $89;
  670.     kSGCGetChannelMaxFramesSelect = $8A;
  671.     kSGCSetChannelRefConSelect = $8B;
  672.     kSGCSetChannelClipSelect = $8C;
  673.     kSGCGetChannelClipSelect = $8D;
  674.     kSGCGetChannelSampleDescriptionSelect = $8E;
  675.     kSGCGetChannelDeviceListSelect = $8F;
  676.     kSGCSetChannelDeviceSelect = $90;
  677.     kSGCSetChannelMatrixSelect = $91;
  678.     kSGCGetChannelMatrixSelect = $92;
  679.     kSGCGetChannelTimeScaleSelect = $93;
  680.     
  681.     kSGCInitChannelSelect = $180;
  682.     kSGCWriteSamplesSelect = $181;
  683.     kSGCGetDataRateSelect = $182;
  684.     kSGCAlignChannelRectSelect = $183;
  685.     
  686.     kSGCPanelGetDitlSelect = $200;
  687.     kSGCPanelGetTitleSelect = $201;
  688.     kSGCPanelCanRunSelect = $202;
  689.     kSGCPanelInstallSelect = $203;
  690.     kSGCPanelEventSelect = $204;
  691.     kSGCPanelItemSelect = $205;
  692.     kSGCPanelRemoveSelect = $206;
  693.     kSGCPanelSetGrabberSelect = $207;
  694.     kSGCPanelSetResFileSelect = $208;
  695.     kSGCPanelGetSettingsSelect = $209;
  696.     kSGCPanelSetSettingsSelect = $20A;
  697.     kSGCPanelValidateInputSelect = $20B;
  698.  
  699.  
  700.     kSGCGetSrcVideoBoundsSelect = $100;
  701.     kSGCSetVideoRectSelect = $101;
  702.     kSGCGetVideoRectSelect = $102;
  703.     kSGCGetVideoCompressorTypeSelect = $103;
  704.     kSGCSetVideoCompressorTypeSelect = $104;
  705.     kSGCSetVideoCompressorSelect = $105;
  706.     kSGCGetVideoCompressorSelect = $106;
  707.     kSGCGetVideoDigitizerComponentSelect = $107;
  708.     kSGCSetVideoDigitizerComponentSelect = $108;
  709.     kSGCVideoDigitizerChangedSelect = $109;
  710.     kSGCSetVideoBottlenecksSelect = $10A;
  711.     kSGCGetVideoBottlenecksSelect = $10B;
  712.     kSGCGrabFrameSelect = $10C;
  713.     kSGCGrabFrameCompleteSelect = $10D;
  714.     kSGCDisplayFrameSelect = $10E;
  715.     kSGCCompressFrameSelect = $10F;
  716.     kSGCCompressFrameCompleteSelect = $110;
  717.     kSGCAddFrameSelect = $111;
  718.     kSGCTransferFrameForCompressSelect = $112;
  719.     kSGCSetCompressBufferSelect = $113;
  720.     kSGCGetCompressBufferSelect = $114;
  721.     kSGCGetBufferInfoSelect = $115;
  722.     kSGCSetUseScreenBufferSelect = $116;
  723.     kSGCGetUseScreenBufferSelect = $117;
  724.     kSGCGrabCompressCompleteSelect = $118;
  725.     kSGCDisplayCompressSelect = $119;
  726.     kSGCSetFrameRateSelect = $11A;
  727.     kSGCGetFrameRateSelect = $11B;
  728.  
  729.     kSGCSetSoundInputDriverSelect = $100;
  730.     kSGCGetSoundInputDriverSelect = $101;
  731.     kSGCSoundInputDriverChangedSelect = $102;
  732.     kSGCSetSoundRecordChunkSizeSelect = $103;
  733.     kSGCGetSoundRecordChunkSizeSelect = $104;
  734.     kSGCSetSoundInputRateSelect = $105;
  735.     kSGCGetSoundInputRateSelect = $106;
  736.     kSGCSetSoundInputParametersSelect = $107;
  737.     kSGCGetSoundInputParametersSelect = $108; 
  738.  
  739.  
  740. CONST
  741.  
  742. {
  743.  Video Digitizer Component
  744.  
  745.  
  746.   Standard type for video digitizers }
  747. videoDigitizerComponentType = 'vdig';
  748. vdigInterfaceRev = 2;
  749.  
  750. { Input Format Standards }
  751. ntscIn = 0;                            { ntsc input format }
  752. currentIn = 0;
  753. palIn = 1;                            { pal input format }
  754. secamIn = 2;                        { secam input format }
  755. ntscReallyIn = 3;
  756.  
  757. { Input Formats }
  758. compositeIn = 0;                    { input is composite format }
  759. sVideoIn = 1;                        { input is sVideo format }
  760. rgbComponentIn = 2;                    { input is rgb component format }
  761.  
  762.  
  763. { Video Digitizer PlayThru States }
  764. vdPlayThruOff = 0;
  765. vdPlayThruOn = 1;
  766.  
  767.  
  768. { Input Color Space Modes }
  769. vdDigitizerBW = 0;                    { black and white }
  770. vdDigitizerRGB = 1;                    { rgb color }
  771.  
  772.  
  773. { Phase Lock Loop Modes }
  774. vdBroadcastMode = 0;                { Broadcast / Laser Disk video mode }
  775. vdVTRMode = 1;                        { VCR / Magnetic media mode }
  776.  
  777.  
  778. { Field Select Options }
  779. vdUseAnyField = 0;
  780. vdUseOddField = 1;
  781. vdUseEvenField = 2;
  782.  
  783. { vdig types }
  784. vdTypeBasic = 0;                    { basic, no clipping }
  785. vdTypeAlpha = 1;                    { supports clipping with alpha channel }
  786. vdTypeMask = 2;                        { supports clipping with mask plane }
  787. vdTypeKey = 3;                        { supports clipping with key color(s) }
  788.  
  789.  
  790. { Digitizer Error Codes }
  791. digiUnimpErr = -2201;                { feature unimplemented }
  792. qtParamErr = -2202;                    { bad input parameter ( out of range, etc ) }
  793. matrixErr = -2203;                    { bad matrix, digitizer did nothing }
  794. notExactMatrix = -2204;                { warning of bad matrix, digitizer did its best }
  795. noMoreKeyColors = -2205;            { all key indexes in use }
  796. notExactSize = -2206;                { Can’t do exact size requested }
  797. badDepth = -2207;                    { Can’t digitize into this depth }
  798. noDMA = -2208;                        { Can’t do DMA digitizing ( i.e. can't go to requested dest }
  799. badCallOrder = -2209;                { Usually due to a status call being called prior to being setup first }
  800.  
  801. { Digitizer Input Capability/Current Flags }
  802. digiInDoesNTSC = $1;                { digitizer supports NTSC input format }
  803. digiInDoesPAL = $2;                    { digitizer supports PAL input format }
  804. digiInDoesSECAM = $4;                { digitizer supports SECAM input format }
  805. digiInDoesGenLock = $80;            { digitizer does genlock }
  806.  
  807. digiInDoesComposite = $100;            { digitizer supports composite input type }
  808. digiInDoesSVideo = $200;            { digitizer supports S-Video input type }
  809. digiInDoesComponent = $400;            { digitizer supports component (rgb) input type }
  810. digiInVTR_Broadcast = $800;            { digitizer can differentiate between the two }
  811.  
  812. digiInDoesColor = $1000;            { digitizer supports color }
  813. digiInDoesBW = $2000;                { digitizer supports black & white }
  814.  
  815.  
  816. { Digitizer Input Current Flags (these are valid only during active operating conditions) }
  817. digiInSignalLock = $80000000;        { digitizer detects input signal is locked - this bit = horiz lock || vertical lock }
  818.  
  819.  
  820. { Digitizer Output Capability/Current Flags }
  821. digiOutDoes1 = $1;                    { digitizer supports 1 bit pixels }
  822. digiOutDoes2 = $2;                    { digitizer supports 2 bit pixels }
  823. digiOutDoes4 = $4;                    { digitizer supports 4 bit pixels }
  824. digiOutDoes8 = $8;                    { digitizer supports 8 bit pixels }
  825. digiOutDoes16 = $10;                { digitizer supports 16 bit pixels }
  826. digiOutDoes32 = $20;                { digitizer supports 32 bit pixels }
  827. digiOutDoesDither = $40;            { digitizer dithers in indexed modes }
  828. digiOutDoesStretch = $80;            { digitizer can arbitrarily stretch }
  829. digiOutDoesShrink = $100;            { digitizer can arbitrarily shrink }
  830. digiOutDoesMask = $200;                { digitizer can mask to clipping regions }
  831.  
  832. digiOutDoesDouble = $800;            { digitizer can stretch to exactly double size }
  833. digiOutDoesQuad = $1000;            { digitizer can stretch exactly quadruple size }
  834. digiOutDoesQuarter = $2000;            { digitizer can shrink to exactly quarter size }
  835. digiOutDoesSixteenth = $4000;        { digitizer can shrink to exactly sixteenth size }
  836.  
  837. digiOutDoesRotate = $8000;            { digitizer supports rotate transformations }
  838. digiOutDoesHorizFlip = $10000;        { digitizer supports horizontal flips Sx < 0 }
  839. digiOutDoesVertFlip = $20000;        { digitizer supports vertical flips Sy < 0 }
  840. digiOutDoesSkew = $40000;            { digitizer supports skew (shear, twist) }
  841. digiOutDoesBlend = $80000;
  842. digiOutDoesWarp = $100000;
  843.  
  844. digiOutDoesHW_DMA = $200000;        { digitizer not constrained to local device }
  845. digiOutDoesHWPlayThru = $400000;    { digitizer doesn't need time to play thru }
  846. digiOutDoesILUT = $800000;            { digitizer does inverse LUT for index modes }
  847. digiOutDoesKeyColor = $1000000;        { digitizer does key color functions too }
  848. digiOutDoesAsyncGrabs = $2000000;    { digitizer supports async grabs }
  849. digiOutDoesUnreadableScreenBits = $4000000;    {playthru doesn't generate readable bits on screen}
  850. digiOutDoesCompress    =    $8000000;    { supports alternate output data types }
  851. digiOutDoesCompressOnly =    $10000000;    { can't provide raw frames anywhere }
  852. digiOutDoesPlayThruDuringCompress = $20000000;    { digi can do playthru while providing compressed data }
  853.  
  854. TYPE
  855. VideoDigitizerComponent = ComponentInstance;
  856. VideoDigitizerError = ComponentResult;
  857.  
  858. { Types }
  859. DigitizerInfo = RECORD
  860.  vdigType: INTEGER;
  861.  inputCapabilityFlags: LONGINT;
  862.  outputCapabilityFlags: LONGINT;
  863.  inputCurrentFlags: LONGINT;
  864.  outputCurrentFlags: LONGINT;
  865.  slot: INTEGER;                        { temporary for connection purposes }
  866.  gdh: GDHandle;                        { temporary for digitizers that have preferred screen }
  867.  maskgdh: GDHandle;                    { temporary for digitizers that have mask planes }
  868.  minDestHeight: INTEGER;            { Smallest resizable height }
  869.  minDestWidth: INTEGER;                { Smallest resizable width }
  870.  maxDestHeight: INTEGER;            { Largest resizable height }
  871.  maxDestWidth: INTEGER;                { Largest resizable height }
  872.  blendLevels: INTEGER;                { Number of blend levels supported (2 if 1 bit mask) }
  873.  Private: LONGINT;                    { reserved }
  874.  END;
  875.  
  876. VdigType = RECORD
  877.  digType: LONGINT;
  878.  Private: LONGINT;
  879.  END;
  880.  
  881. VdigTypeListPtr = ^VdigTypeList;
  882. VdigTypeListHandle = ^VdigTypeListPtr;
  883. VdigTypeList = RECORD
  884.  count: INTEGER;
  885.  list: ARRAY [0..0] OF VdigType;
  886.  END;
  887.  
  888. VdigBufferRec = RECORD
  889.     dest: PixMapHandle;
  890.     location: Point;
  891.     reserved: LONGINT;
  892.     END;
  893.  
  894. VdigBufferRecListPtr = ^VdigBufferRecList;
  895. VdigBufferRecListHandle = ^VdigBufferRecListPtr;
  896. VdigBufferRecList = RECORD
  897.     count: INTEGER;
  898.     matrix: MatrixRecordPtr ;
  899.     mask: RgnHandle;
  900.     list: ARRAY [0..0] OF VdigBufferRec;
  901.     END;
  902.     
  903. VdigIntProc = ProcPtr;
  904.  
  905. VDCompressionListPtr = ^VDCompressionList;
  906. VDCompressionListHandle = ^VDCompressionListPtr;
  907. VDCompressionList = RECORD
  908.     codec    :    CodecComponent;
  909.     cType    :    CodecType;
  910.     typeName :    Str63;
  911.     name    :    Str63;
  912.     formatFlags : LONGINT;
  913.     compressFlags : LONGINT;
  914.     reserved         :    LONGINT;
  915. END; 
  916.  
  917.  
  918. CONST
  919.  
  920. dmaDepth1 = 1;
  921. dmaDepth2 = 2;
  922. dmaDepth4 = 4;
  923. dmaDepth8 = 8;
  924. dmaDepth16 = $10;
  925. dmaDepth32 = $20;
  926. dmaDepth2Gray = $40;
  927. dmaDepth4Gray = $80;
  928. dmaDepth8Gray = $100;
  929.  
  930. kvdigSelectors = $52;
  931.  
  932. FUNCTION VDGetMaxSrcRect(ci: VideoDigitizerComponent;inputStd: INTEGER;VAR maxSrcRect: Rect): VideoDigitizerError;
  933.  INLINE $2F3C,$6,$1,$7000,$A82A;
  934. FUNCTION VDGetActiveSrcRect(ci: VideoDigitizerComponent;inputStd: INTEGER;VAR activeSrcRect: Rect): VideoDigitizerError;
  935.  INLINE $2F3C,$6,$2,$7000,$A82A;
  936. FUNCTION VDSetDigitizerRect(ci: VideoDigitizerComponent;VAR digitizerRect: Rect): VideoDigitizerError;
  937.  INLINE $2F3C,$4,$3,$7000,$A82A;
  938. FUNCTION VDGetDigitizerRect(ci: VideoDigitizerComponent;VAR digitizerRect: Rect): VideoDigitizerError;
  939.  INLINE $2F3C,$4,$4,$7000,$A82A;
  940. FUNCTION VDGetVBlankRect(ci: VideoDigitizerComponent;inputStd: INTEGER;VAR vBlankRect: Rect): VideoDigitizerError;
  941.  INLINE $2F3C,$6,$5,$7000,$A82A;
  942. FUNCTION VDGetMaskPixMap(ci: VideoDigitizerComponent;maskPixMap: PixMapHandle): VideoDigitizerError;
  943.  INLINE $2F3C,$4,$6,$7000,$A82A;
  944. FUNCTION VDGetPlayThruDestination(ci: VideoDigitizerComponent;VAR dest: PixMapHandle;
  945.  VAR destRect: Rect;VAR m: MatrixRecord;VAR mask: RgnHandle): VideoDigitizerError;
  946.  INLINE $2F3C,$10,$8,$7000,$A82A;
  947. FUNCTION VDUseThisCLUT(ci: VideoDigitizerComponent;colorTableHandle: CTabHandle): VideoDigitizerError;
  948.  INLINE $2F3C,$4,$9,$7000,$A82A;
  949. FUNCTION VDSetInputGammaValue(ci: VideoDigitizerComponent;channel1: Fixed;channel2: Fixed;
  950.  channel3: Fixed): VideoDigitizerError;
  951.  INLINE $2F3C,$C,$A,$7000,$A82A;
  952. FUNCTION VDGetInputGammaValue(ci: VideoDigitizerComponent;VAR channel1: Fixed;
  953.  VAR channel2: Fixed;VAR channel3: Fixed): VideoDigitizerError;
  954.  INLINE $2F3C,$C,$B,$7000,$A82A;
  955. FUNCTION VDSetBrightness(ci: VideoDigitizerComponent;VAR brightness: INTEGER): VideoDigitizerError;
  956.  INLINE $2F3C,$4,$C,$7000,$A82A;
  957. FUNCTION VDGetBrightness(ci: VideoDigitizerComponent;VAR brightness: INTEGER): VideoDigitizerError;
  958.  INLINE $2F3C,$4,$D,$7000,$A82A;
  959. FUNCTION VDSetContrast(ci: VideoDigitizerComponent;VAR contrast: INTEGER): VideoDigitizerError;
  960.  INLINE $2F3C,$4,$E,$7000,$A82A;
  961. FUNCTION VDSetHue(ci: VideoDigitizerComponent;VAR hue: INTEGER): VideoDigitizerError;
  962.  INLINE $2F3C,$4,$F,$7000,$A82A;
  963. FUNCTION VDSetSharpness(ci: VideoDigitizerComponent;VAR sharpness: INTEGER): VideoDigitizerError;
  964.  INLINE $2F3C,$4,$10,$7000,$A82A;
  965. FUNCTION VDSetSaturation(ci: VideoDigitizerComponent;VAR saturation: INTEGER): VideoDigitizerError;
  966.  INLINE $2F3C,$4,$11,$7000,$A82A;
  967. FUNCTION VDGetContrast(ci: VideoDigitizerComponent;VAR contrast: INTEGER): VideoDigitizerError;
  968.  INLINE $2F3C,$4,$12,$7000,$A82A;
  969. FUNCTION VDGetHue(ci: VideoDigitizerComponent;VAR hue: INTEGER): VideoDigitizerError;
  970.  INLINE $2F3C,$4,$13,$7000,$A82A;
  971. FUNCTION VDGetSharpness(ci: VideoDigitizerComponent;VAR sharpness: INTEGER): VideoDigitizerError;
  972.  INLINE $2F3C,$4,$14,$7000,$A82A;
  973. FUNCTION VDGetSaturation(ci: VideoDigitizerComponent;VAR saturation: INTEGER): VideoDigitizerError;
  974.  INLINE $2F3C,$4,$15,$7000,$A82A;
  975. FUNCTION VDGrabOneFrame(ci: VideoDigitizerComponent): VideoDigitizerError;
  976.  INLINE $2F3C,$0,$16,$7000,$A82A;
  977. FUNCTION VDGetMaxAuxBuffer(ci: VideoDigitizerComponent;VAR pm: PixMapHandle;
  978.  VAR r: Rect): VideoDigitizerError;
  979.  INLINE $2F3C,$8,$17,$7000,$A82A;
  980. FUNCTION VDGetDigitizerInfo(ci: VideoDigitizerComponent;VAR info: DigitizerInfo): VideoDigitizerError;
  981.  INLINE $2F3C,$4,$19,$7000,$A82A;
  982. FUNCTION VDGetCurrentFlags(ci: VideoDigitizerComponent;VAR inputCurrentFlag: LONGINT;
  983.  VAR outputCurrentFlag: LONGINT): VideoDigitizerError;
  984.  INLINE $2F3C,$8,$1A,$7000,$A82A;
  985. FUNCTION VDSetKeyColor(ci: VideoDigitizerComponent;index: LONGINT): VideoDigitizerError;
  986.  INLINE $2F3C,$4,$1B,$7000,$A82A;
  987. FUNCTION VDGetKeyColor(ci: VideoDigitizerComponent;VAR index: LONGINT): VideoDigitizerError;
  988.  INLINE $2F3C,$4,$1C,$7000,$A82A;
  989. FUNCTION VDAddKeyColor(ci: VideoDigitizerComponent;VAR index: LONGINT): VideoDigitizerError;
  990.  INLINE $2F3C,$4,$1D,$7000,$A82A;
  991. FUNCTION VDGetNextKeyColor(ci: VideoDigitizerComponent;index: LONGINT): VideoDigitizerError;
  992.  INLINE $2F3C,$4,$1E,$7000,$A82A;
  993. FUNCTION VDSetKeyColorRange(ci: VideoDigitizerComponent;VAR minRGB: RGBColor;
  994.  VAR maxRGB: RGBColor): VideoDigitizerError;
  995.  INLINE $2F3C,$8,$1F,$7000,$A82A;
  996. FUNCTION VDGetKeyColorRange(ci: VideoDigitizerComponent;VAR minRGB: RGBColor;
  997.  VAR maxRGB: RGBColor): VideoDigitizerError;
  998.  INLINE $2F3C,$8,$20,$7000,$A82A;
  999. FUNCTION VDSetDigitizerUserInterrupt(ci: VideoDigitizerComponent;flags: LONGINT;
  1000.  userInterruptProc: VdigIntProc;refcon: LONGINT): VideoDigitizerError;
  1001.  INLINE $2F3C,$C,$21,$7000,$A82A;
  1002. FUNCTION VDSetInputColorSpaceMode(ci: VideoDigitizerComponent;colorSpaceMode: INTEGER): VideoDigitizerError;
  1003.  INLINE $2F3C,$2,$22,$7000,$A82A;
  1004. FUNCTION VDGetInputColorSpaceMode(ci: VideoDigitizerComponent;VAR colorSpaceMode: INTEGER): VideoDigitizerError;
  1005.  INLINE $2F3C,$4,$23,$7000,$A82A;
  1006. FUNCTION VDSetClipState(ci: VideoDigitizerComponent;clipEnable: INTEGER): VideoDigitizerError;
  1007.  INLINE $2F3C,$2,$24,$7000,$A82A;
  1008. FUNCTION VDGetClipState(ci: VideoDigitizerComponent;VAR clipEnable: INTEGER): VideoDigitizerError;
  1009.  INLINE $2F3C,$4,$25,$7000,$A82A;
  1010. FUNCTION VDSetClipRgn(ci: VideoDigitizerComponent;clipRegion: RgnHandle): VideoDigitizerError;
  1011.  INLINE $2F3C,$4,$26,$7000,$A82A;
  1012. FUNCTION VDClearClipRgn(ci: VideoDigitizerComponent;clipRegion: RgnHandle): VideoDigitizerError;
  1013.  INLINE $2F3C,$4,$27,$7000,$A82A;
  1014. FUNCTION VDGetCLUTInUse(ci: VideoDigitizerComponent;VAR colorTableHandle: CTabHandle): VideoDigitizerError;
  1015.  INLINE $2F3C,$4,$28,$7000,$A82A;
  1016. FUNCTION VDSetPLLFilterType(ci: VideoDigitizerComponent;pllType: INTEGER): VideoDigitizerError;
  1017.  INLINE $2F3C,$2,$29,$7000,$A82A;
  1018. FUNCTION VDGetPLLFilterType(ci: VideoDigitizerComponent;VAR pllType: INTEGER): VideoDigitizerError;
  1019.  INLINE $2F3C,$4,$2A,$7000,$A82A;
  1020. FUNCTION VDGetMaskandValue(ci: VideoDigitizerComponent;blendLevel: INTEGER;
  1021.  VAR mask: LONGINT;VAR value: LONGINT): VideoDigitizerError;
  1022.  INLINE $2F3C,$A,$2B,$7000,$A82A;
  1023. FUNCTION VDSetMasterBlendLevel(ci: VideoDigitizerComponent;VAR blendLevel: INTEGER): VideoDigitizerError;
  1024.  INLINE $2F3C,$4,$2C,$7000,$A82A;
  1025. FUNCTION VDSetPlayThruDestination(ci: VideoDigitizerComponent;dest: PixMapHandle;
  1026.  VAR destRect: Rect;VAR m: MatrixRecord;mask: RgnHandle): VideoDigitizerError;
  1027.  INLINE $2F3C,$10,$2D,$7000,$A82A;
  1028. FUNCTION VDSetPlayThruOnOff(ci: VideoDigitizerComponent;state: INTEGER): VideoDigitizerError;
  1029.  INLINE $2F3C,$2,$2E,$7000,$A82A;
  1030. FUNCTION VDSetFieldPreference(ci: VideoDigitizerComponent;fieldFlag: INTEGER): VideoDigitizerError;
  1031.  INLINE $2F3C,$2,$2F,$7000,$A82A;
  1032. FUNCTION VDGetFieldPreference(ci: VideoDigitizerComponent;VAR fieldFlag: INTEGER): VideoDigitizerError;
  1033.  INLINE $2F3C,$4,$30,$7000,$A82A;
  1034. FUNCTION VDPreflightDestination(ci: VideoDigitizerComponent;VAR digitizerRect: Rect;
  1035.  dest: PixMapHandle;VAR destRect: Rect;VAR m: MatrixRecord): VideoDigitizerError;
  1036.  INLINE $2F3C,$10,$32,$7000,$A82A;
  1037. FUNCTION VDPreflightGlobalRect(ci: VideoDigitizerComponent;theWindow: GrafPtr;
  1038.  VAR globalRect: Rect): VideoDigitizerError;
  1039.  INLINE $2F3C,$8,$33,$7000,$A82A;
  1040. FUNCTION VDSetPlayThruGlobalRect(ci: VideoDigitizerComponent;theWindow: GrafPtr;
  1041.  VAR globalRect: Rect): VideoDigitizerError;
  1042.  INLINE $2F3C,$8,$34,$7000,$A82A;
  1043. FUNCTION VDSetInputGammaRecord(ci: VideoDigitizerComponent;inputGammaPtr: VDGamRecPtr): VideoDigitizerError;
  1044.  INLINE $2F3C,$4,$35,$7000,$A82A;
  1045. FUNCTION VDGetInputGammaRecord(ci: VideoDigitizerComponent;VAR inputGammaPtr: VDGamRecPtr): VideoDigitizerError;
  1046.  INLINE $2F3C,$4,$36,$7000,$A82A;
  1047. FUNCTION VDSetBlackLevelValue(ci: VideoDigitizerComponent;VAR blackLevel: INTEGER): VideoDigitizerError;
  1048.  INLINE $2F3C,$4,$37,$7000,$A82A;
  1049. FUNCTION VDGetBlackLevelValue(ci: VideoDigitizerComponent;VAR blackLevel: INTEGER): VideoDigitizerError;
  1050.  INLINE $2F3C,$4,$38,$7000,$A82A;
  1051. FUNCTION VDSetWhiteLevelValue(ci: VideoDigitizerComponent;VAR whiteLevel: INTEGER): VideoDigitizerError;
  1052.  INLINE $2F3C,$4,$39,$7000,$A82A;
  1053. FUNCTION VDGetWhiteLevelValue(ci: VideoDigitizerComponent;VAR whiteLevel: INTEGER): VideoDigitizerError;
  1054.  INLINE $2F3C,$4,$3A,$7000,$A82A;
  1055. FUNCTION VDGetVideoDefaults(ci: VideoDigitizerComponent;VAR blackLevel: INTEGER;
  1056.  VAR whiteLevel: INTEGER;VAR brightness: INTEGER;VAR hue: INTEGER;VAR saturation: INTEGER;
  1057.  VAR contrast: INTEGER;VAR sharpness: INTEGER): VideoDigitizerError;
  1058.  INLINE $2F3C,$1C,$3B,$7000,$A82A;
  1059. FUNCTION VDGetNumberOfInputs(ci: VideoDigitizerComponent;VAR inputs: INTEGER): VideoDigitizerError;
  1060.  INLINE $2F3C,$4,$3C,$7000,$A82A;
  1061. FUNCTION VDGetInputFormat(ci: VideoDigitizerComponent;input: INTEGER;VAR format: INTEGER): VideoDigitizerError;
  1062.  INLINE $2F3C,$6,$3D,$7000,$A82A;
  1063. FUNCTION VDSetInput(ci: VideoDigitizerComponent;input: INTEGER): VideoDigitizerError;
  1064.  INLINE $2F3C,$2,$3E,$7000,$A82A;
  1065. FUNCTION VDGetInput(ci: VideoDigitizerComponent;VAR input: INTEGER): VideoDigitizerError;
  1066.  INLINE $2F3C,$4,$3F,$7000,$A82A;
  1067. FUNCTION VDSetInputStandard(ci: VideoDigitizerComponent;inputStandard: INTEGER): VideoDigitizerError;
  1068.  INLINE $2F3C,$2,$40,$7000,$A82A;
  1069. FUNCTION     VDSetupBuffers(ci: VideoDigitizerComponent; bufferList: VdigBufferRecListHandle ) : VideoDigitizerError;
  1070.  INLINE $2F3C,$4,$41,$7000,$A82A;
  1071. FUNCTION     VDGrabOneFrameAsync(ci: VideoDigitizerComponent; buffer : INTEGER) : VideoDigitizerError;
  1072.  INLINE $2F3C,$2,$42,$7000,$A82A;
  1073. FUNCTION     VDDone(ci: VideoDigitizerComponent; buffer : INTEGER) : LONGINT;
  1074.  INLINE $2F3C,$2,$43,$7000,$A82A;
  1075. FUNCTION VDSetCompression(ci:VideoDigitizerComponent; compressType:OSType; depth:INTEGER; VAR bounds:Rect;
  1076.             spatialQuality:CodecQ; temporalQuality:CodecQ; keyFrameRate:LONGINT ) :VideoDigitizerError;
  1077.  INLINE $2F3C,$16,$44,$7000,$A82A;
  1078.  
  1079. FUNCTION VDCompressOneFrameAsync(ci:VideoDigitizerComponent ):VideoDigitizerError;
  1080.  INLINE $2F3C,0,$45,$7000,$A82A;
  1081.  
  1082. { See CompressSequenceFrame in ImageCompression.p for the reason behind this massive glue }
  1083. FUNCTION VDCompressDone(ci:VideoDigitizerComponent; VAR done :BOOLEAN; VAR theData:Ptr; VAR dataSize:LONGINT; 
  1084.     VAR similarity:Byte; VAR t:TimeRecord):VideoDigitizerError;
  1085.  INLINE $206F,$0004,$4250,$52AF,$0004,$2F3C,$14,$46,$7000,$A82A;
  1086.  
  1087. FUNCTION VDReleaseCompressBuffer(ci:VideoDigitizerComponent; bufferAddr:Ptr ):VideoDigitizerError;
  1088.  INLINE $2F3C,$4,$47,$7000,$A82A;
  1089.  
  1090. FUNCTION VDGetImageDescription(ci:VideoDigitizerComponent; desc:ImageDescriptionHandle):VideoDigitizerError;
  1091.  INLINE $2F3C,$4,$48,$7000,$A82A;
  1092.  
  1093. FUNCTION VDResetCompressSequence(ci:VideoDigitizerComponent ):VideoDigitizerError;
  1094.  INLINE $2F3C,0,$49,$7000,$A82A;
  1095.  
  1096. FUNCTION VDSetCompressionOnOff(ci:VideoDigitizerComponent; state:BOOLEAN ):VideoDigitizerError; 
  1097.  INLINE $2F3C,$2,$4A,$7000,$A82A;
  1098.  
  1099. FUNCTION VDGetCompressionTypes(ci:VideoDigitizerComponent; h:VDCompressionListHandle ):VideoDigitizerError; 
  1100.  INLINE $2F3C,$4,$4B,$7000,$A82A;
  1101.  
  1102. FUNCTION VDSetTimeBase(ci:VideoDigitizerComponent; t:TimeBase ):VideoDigitizerError; 
  1103.  INLINE $2F3C,$4,$4C,$7000,$A82A;
  1104.  
  1105. FUNCTION VDSetFrameRate(ci:VideoDigitizerComponent; framesPerSecond:Fixed ):VideoDigitizerError; 
  1106.  INLINE $2F3C,$4,$4D,$7000,$A82A;
  1107.  
  1108. FUNCTION VDGetDataRate(ci:VideoDigitizerComponent; VAR milliSecPerFrame: LONGINT; VAR framesPerSecond:Fixed; VAR bytesPerSecond:LONGINT):VideoDigitizerError;
  1109.  INLINE $2F3C,$C,$4E,$7000,$A82A;
  1110.  
  1111. FUNCTION VDGetSoundInputDriver(ci:VideoDigitizerComponent; soundDriverName:Str255 ):VideoDigitizerError;
  1112.  INLINE $2F3C,$4,$4F,$7000,$A82A;
  1113.  
  1114. FUNCTION VDGetDMADepths(ci:VideoDigitizerComponent; VAR depthArray:LONGINT; VAR preferredDepth:LONGINT):VideoDigitizerError;
  1115.  INLINE $2F3C,$8,$50,$7000,$A82A;
  1116.  
  1117. FUNCTION VDGetPreferredTimeScale(ci:VideoDigitizerComponent; VAR preferred:TimeScale):VideoDigitizerError;
  1118.  INLINE $2F3C,$4,$51,$7000,$A82A;
  1119.  
  1120. FUNCTION VDReleaseAsyncBuffers(ci:VideoDigitizerComponent):VideoDigitizerError;
  1121.  INLINE $2F3C,0,$52,$7000,$A82A;
  1122.  
  1123. CONST
  1124. { Video Digitizer Interface }
  1125. kSelectVDGetMaxSrcRect = $1;
  1126. kSelectVDGetActiveSrcRect = $2;
  1127. kSelectVDSetDigitizerRect = $3;
  1128. kSelectVDGetDigitizerRect = $4;
  1129. kSelectVDGetVBlankRect = $5;
  1130. kSelectVDGetMaskPixMap = $6;
  1131. kSelectVDGetPlayThruDestination = $8;
  1132. kSelectVDUseThisCLUT = $9;
  1133. kSelectVDSetInputGammaValue = $A;
  1134. kSelectVDGetInputGammaValue = $B;
  1135. kSelectVDSetBrightness = $C;
  1136. kSelectVDGetBrightness = $D;
  1137. kSelectVDSetContrast = $E;
  1138. kSelectVDSetHue = $F;
  1139. kSelectVDSetSharpness = $10;
  1140. kSelectVDSetSaturation = $11;
  1141. kSelectVDGetContrast = $12;
  1142. kSelectVDGetHue = $13;
  1143. kSelectVDGetSharpness = $14;
  1144. kSelectVDGetSaturation = $15;
  1145. kSelectVDGrabOneFrame = $16;
  1146. kSelectVDGetMaxAuxBuffer = $17;
  1147. kSelectVDGetDigitizerInfo = $19;
  1148. kSelectVDGetCurrentFlags = $1A;
  1149. kSelectVDSetKeyColor = $1B;
  1150. kSelectVDGetKeyColor = $1C;
  1151. kSelectVDAddKeyColor = $1D;
  1152. kSelectVDGetNextKeyColor = $1E;
  1153. kSelectVDSetKeyColorRange = $1F;
  1154. kSelectVDGetKeyColorRange = $20;
  1155. kSelectVDSetDigitizerUserInterrupt = $21;
  1156. kSelectVDSetInputColorSpaceMode = $22;
  1157. kSelectVDGetInputColorSpaceMode = $23;
  1158. kSelectVDSetClipState = $24;
  1159. kSelectVDGetClipState = $25;
  1160. kSelectVDSetClipRgn = $26;
  1161. kSelectVDClearClipRgn = $27;
  1162. kSelectVDGetCLUTInUse = $28;
  1163. kSelectVDSetPLLFilterType = $29;
  1164. kSelectVDGetPLLFilterType = $2A;
  1165. kSelectVDGetMaskandValue = $2B;
  1166. kSelectVDSetMasterBlendLevel = $2C;
  1167. kSelectVDSetPlayThruDestination = $2D;
  1168. kSelectVDSetPlayThruOnOff = $2E;
  1169. kSelectVDSetFieldPreference = $2F;
  1170. kSelectVDGetFieldPreference = $30;
  1171. kSelectVDPreflightDestination = $32;
  1172. kSelectVDPreflightGlobalRect = $33;
  1173. kSelectVDSetPlayThruGlobalRect = $34;
  1174. kSelectVDSetInputGammaRecord = $35;
  1175. kSelectVDGetInputGammaRecord = $36;
  1176. kSelectVDSetBlackLevelValue = $37;
  1177. kSelectVDGetBlackLevelValue = $38;
  1178. kSelectVDSetWhiteLevelValue = $39;
  1179. kSelectVDGetWhiteLevelValue = $3A;
  1180. kSelectVDGetVideoDefaults = $3B;
  1181. kSelectVDGetNumberOfInputs = $3C;
  1182. kSelectVDGetInputFormat = $3D;
  1183. kSelectVDSetInput = $3E;
  1184. kSelectVDGetInput = $3F;
  1185. kSelectVDSetInputStandard = $40;
  1186. kSelectVDSetupBuffers = $41;
  1187. kSelectVDGrabOneFrameAsync = $42;
  1188. kSelectVDDone = $43;
  1189. kSelectVDSetCompression = $44;
  1190. kSelectVDCompressOneFrameAsync = $45;
  1191. kSelectVDCompressDone = $46;
  1192. kSelectVDReleaseCompressBuffer = $47;
  1193. kSelectVDGetImageDescription = $48;
  1194. kSelectVDResetCompressSequence = $49;
  1195. kSelectVDSetCompressionOnOff = $4A;
  1196. kSelectVDGetCompressionTypes = $4B;
  1197. kSelectVDSetTimeBase = $4C;
  1198. kSelectVDSetFrameRate = $4D;
  1199. kSelectVDGetDataRate = $4E;
  1200. kSelectVDGetSoundInputDriver = $4F;
  1201. kSelectVDGetDMADepths = $50;
  1202. kSelectVDGetPreferredTimeScale = $51;
  1203. kSelectVDReleaseAsyncBuffers = $52;
  1204.  
  1205.  
  1206. CONST
  1207. StandardCompressionType    =    'scdi';
  1208. StandardCompressionSubType =    'imag';
  1209.  
  1210. TYPE
  1211. SCModalFilterProcPtr = ProcPtr;
  1212. SCModalHookProcPtr = ProcPtr;
  1213.  
  1214.  
  1215. CONST
  1216.     scListEveryCodec = $2;
  1217.     scAllowZeroFrameRate = $4;
  1218.     scAllowZeroKeyFrameRate = $8;
  1219.     scShowBestDepth = $10;
  1220.     scUseMovableModal = $20;
  1221.  
  1222.     scPreferCropping = 1;
  1223.     scPreferScaling = 2;
  1224.     scPreferScalingAndCropping = 3;
  1225.  
  1226.     scTestImageWidth = 80;
  1227.     scTestImageHeight = 80;
  1228.  
  1229.     scOKItem = 1;
  1230.     scCancelItem = 2;
  1231.     scCustomItem = 3;
  1232.  
  1233.     scUserCancelled    =    1;
  1234.     
  1235.     
  1236. TYPE
  1237.  
  1238. SCSpatialSettings = RECORD 
  1239.     cType             : CodecType;
  1240.     codec             : CodecComponent;
  1241.     depth             : INTEGER;
  1242.     spatialQuality     : CodecQ;
  1243. END;
  1244.  
  1245. SCTemporalSettings = RECORD
  1246.     temporalQuality : CodecQ;
  1247.     frameRate         : Fixed;
  1248.     keyFrameRate    : LONGINT;
  1249. END;
  1250.  
  1251.  
  1252. SCDataRateSettings = RECORD 
  1253.     dataRate            :LONGINT;
  1254.     frameDuration        :LONGINT;
  1255.     minSpatialQuality    :CodecQ;
  1256.     minTemporalQuality    :CodecQ;
  1257. END;
  1258.  
  1259. SCExtendedProcs = RECORD 
  1260.     filterProc    :SCModalFilterProcPtr;
  1261.     hookProc    :SCModalHookProcPtr;
  1262.     refCon        :LONGINT;
  1263.     customName    :Str31;
  1264. END; 
  1265.  
  1266. CONST
  1267.     
  1268.     scSpatialSettingsType    =    'sptl';        {    pointer to SCSpatialSettings struct    }    
  1269.     scTemporalSettingsType    =    'tprl';        {    pointer to SCTemporalSettings struct    }
  1270.     scDataRateSettingsType    =    'drat';        {    pointer to SCDataRateSettings struct    }
  1271.     scColorTableType        =    'clut';        {    Pointer to CTabHandle    }
  1272.     scProgressProcType        =    'prog';        {    pointer to ProgressRecord struct    }
  1273.     scExtendedProcsType        =    'xprc';        {    pointer to SCExtendedProcs struct    }
  1274.     scPreferenceFlagsType    =    'pref';        {    pointer to long    }
  1275.     scSettingsStateType        =    'ssta';        {    pointer to Handle    }
  1276.     scSequenceIDType        =    'sequ';        {    pointer to ImageSequence    }
  1277.     scWindowPositionType    =    'wndw';        {    pointer to Point    }
  1278.     scCodecFlagsType        =    'cflg';        {    pointer to CodecFlags    }
  1279.     scCodecSettingsType        =    'cdec';        {    pointer to Handle    }
  1280.     
  1281.     scInfoNotFoundErr    =    -8971;
  1282.  
  1283.  
  1284. FUNCTION SCPositionRect(ci:ComponentInstance;r:RectPtr;VAR where:Point): ComponentResult;
  1285.  INLINE $2F3C,$8,$2,$7000,$A82A;
  1286. FUNCTION SCPositionDialog(ci:ComponentInstance;id:INTEGER;VAR where:Point): ComponentResult;
  1287.  INLINE $2F3C,$6,$3,$7000,$A82A;
  1288. FUNCTION SCSetTestImagePictHandle(ci:ComponentInstance;testPict:PicHandle;testRect:RectPtr;testFlags:INTEGER): ComponentResult;
  1289.  INLINE $2F3C,$A,$4,$7000,$A82A;
  1290. FUNCTION SCSetTestImagePictFile(ci:ComponentInstance;testFileRef:INTEGER;testRect:RectPtr;testFlags:INTEGER): ComponentResult;
  1291.  INLINE $2F3C,$8,$5,$7000,$A82A;
  1292. FUNCTION SCSetTestImagePixMap(ci:ComponentInstance;testPixMap:PixMapHandle;testRect:RectPtr;testFlags:INTEGER): ComponentResult;
  1293.  INLINE $2F3C,$A,$6,$7000,$A82A;
  1294. FUNCTION SCGetBestDeviceRect(ci:ComponentInstance;r:RectPtr): ComponentResult;
  1295.  INLINE $2F3C,$4,$7,$7000,$A82A;
  1296. FUNCTION SCRequestImageSettings(ci:ComponentInstance): ComponentResult;
  1297.  INLINE $2F3C,$0,$A,$7000,$A82A;
  1298. FUNCTION SCCompressImage(ci:ComponentInstance;src:PixMapHandle;srcRect:Rect;VAR desc:ImageDescriptionHandle; VAR data:Handle): ComponentResult;
  1299.  INLINE $2F3C,$10,$B,$7000,$A82A;
  1300. FUNCTION SCCompressPicture(ci:ComponentInstance;src,dst:PicHandle): ComponentResult;
  1301.  INLINE $2F3C,$8,$C,$7000,$A82A;
  1302. FUNCTION SCCompressPictureFile(ci:ComponentInstance;srcRef,dstRef:INTEGER): ComponentResult;
  1303.  INLINE $2F3C,$4,$D,$7000,$A82A;
  1304. FUNCTION SCRequestSequenceSettings(ci:ComponentInstance): ComponentResult;
  1305.  INLINE $2F3C,$0,$E,$7000,$A82A;
  1306. FUNCTION SCCompressSequenceBegin(ci:ComponentInstance;src:PixMapHandle;srcRect:Rect;VAR desc:ImageDescriptionHandle): ComponentResult;
  1307.  INLINE $2F3C,$C,$F,$7000,$A82A;
  1308. FUNCTION SCCompressSequenceFrame(ci:ComponentInstance;src:PixMapHandle;srcRect:Rect;VAR data:Handle;VAR dataSize:LONGINT; VAR notSyncFlag: BOOLEAN): ComponentResult;
  1309.  INLINE $2F3C,$14,$10,$7000,$A82A;
  1310. FUNCTION SCCompressSequenceEnd(ci:ComponentInstance): ComponentResult;
  1311.  INLINE $2F3C,$0,$11,$7000,$A82A;
  1312. FUNCTION SCDefaultPictHandleSettings(ci:ComponentInstance;src:PicHandle;motion:BOOLEAN): ComponentResult;
  1313.  INLINE $2F3C,$6,$12,$7000,$A82A;
  1314. FUNCTION SCDefaultPictFileSettings(ci:ComponentInstance;srcRef:INTEGER;motion:BOOLEAN): ComponentResult;
  1315.  INLINE $2F3C,$4,$13,$7000,$A82A;
  1316. FUNCTION SCDefaultPixMapSettings(ci:ComponentInstance;src:PixMapHandle;motion:BOOLEAN): ComponentResult;
  1317.  INLINE $2F3C,$4,$14,$7000,$A82A;
  1318. FUNCTION SCGetInfo(ci:ComponentInstance;infoType:OSType;info:Ptr): ComponentResult;
  1319.  INLINE $2F3C,$8,$15,$7000,$A82A;
  1320. FUNCTION SCSetInfo(ci:ComponentInstance;infoType:OSType;info:Ptr): ComponentResult;
  1321.  INLINE $2F3C,$8,$16,$7000,$A82A;
  1322. FUNCTION SCNewGWorld(ci:ComponentInstance; VAR gwp:GWorldPtr; VAR rp:Rect; flags: GWorldFlags):ComponentResult;
  1323.  INLINE $2F3C,$C,$17,$7000,$A82A;
  1324.  
  1325. CONST
  1326.     
  1327.     kScPositionRect            =    2;
  1328.     kScPositionDialog        =    3;
  1329.     kScSetTestImagePictHandle=    4;
  1330.     kScSetTestImagePictFile    =    5;
  1331.     kScSetTestImagePixMap    =    6;
  1332.     kScGetBestDeviceRect        =    7;
  1333.  
  1334.     kScRequestImageSettings    =    $A;
  1335.     kScCompressImage            =    $B;
  1336.     kScCompressPicture        =    $C;
  1337.     kScCompressPictureFile    =    $D;
  1338.     kScRequestSequenceSettings=    $E;
  1339.     kScCompressSequenceBegin    =    $F;
  1340.     kScCompressSequenceFrame    =    $10;
  1341.     kScCompressSequenceEnd    =    $11;
  1342.     kScDefaultPictHandleSettings=    $12;
  1343.     kScDefaultPictFileSettings=    $13;
  1344.     kScDefaultPixMapSettings    =    $14;
  1345.     kScGetInfo                =    $15;
  1346.     kScSetInfo                =    $16;
  1347.     kScNewGWorld                =    $17;
  1348.  
  1349. { For compatibility }
  1350. TYPE
  1351. SCParams = RECORD
  1352.     flags        :    LONGINT;
  1353.     theCodecType:    CodecType;
  1354.     theCodec    :    CodecComponent;
  1355.     spatialQuality : CodecQ;
  1356.     temporalQuality : CodecQ;
  1357.     depth            : INTEGER;
  1358.     frameRate        : Fixed;
  1359.     keyFrameRate    : LONGINT;
  1360.     reserved1        : LONGINT;
  1361.     reserved2        :    LONGINT;
  1362. END; 
  1363.  
  1364. CONST
  1365.     kScShowMotionSettings = 1;
  1366.     kScGetCompression = 1;
  1367.     kScSettingsChangedItem = -1;
  1368.     
  1369. FUNCTION OpenStdCompression : ComponentInstance;
  1370. FUNCTION SCGetCompressionExtended(ci:ComponentInstance;VAR sparams:SCParams;where:Point;
  1371.  filterProc:SCModalFilterProcPtr;hookProc:SCModalHookProcPtr;refcon:LONGINT;customName:Str255): ComponentResult;
  1372.  INLINE $2F3C,$18,$1,$7000,$A82A;
  1373. FUNCTION SCGetCompression(ci:ComponentInstance;VAR sparams:SCParams;where:Point): ComponentResult;
  1374.  INLINE $42A7,$42A7,$42A7,$42A7,$2F3C,$18,$1,$7000,$A82A;
  1375.  
  1376.  
  1377. {
  1378.  
  1379.         Movie Import Components
  1380.  
  1381. }
  1382.  
  1383.  
  1384. TYPE
  1385.     MovieImportComponent = ComponentInstance;
  1386.     MovieExportComponent = ComponentInstance;
  1387.  
  1388. CONST
  1389.     MovieImportType = 'eat ';
  1390.     MovieExportType = 'spit';
  1391.     
  1392.     canMovieImportHandles = 1;
  1393.     canMovieImportFiles = 2;
  1394.     hasMovieImportUserInterface = 4;
  1395.     canMovieExportHandles = 8;
  1396.     canMovieExportFiles = $10;
  1397.     hasMovieExportUserInterface = $20;
  1398.     dontAutoFileMovieImport = $40;
  1399.     canMovieExportAuxDataHandle = $80;
  1400.     canMovieImportValidateHandles = $100;
  1401.     canMovieImportValidateFile = $200;
  1402.     dontRegisterWithEasyOpen = $400;
  1403.  
  1404.     kMovieImportExportOpenSelect = kComponentOpenSelect;
  1405.     kMovieImportExportCloseSelect = kComponentCloseSelect;
  1406.     kMovieImportExportCanDoSelect = kComponentCanDoSelect;
  1407.     kMovieImportExportVersionSelect = kComponentVersionSelect; 
  1408.  
  1409.     kMovieImportHandleSelect = 1;
  1410.     kMovieImportFileSelect = 2;
  1411.     kMovieImportSetFrameDurationSelect = 3;
  1412.     kMovieImportSetSampleDescriptionSelect = 4;
  1413.     kMovieImportSetMediaFileSelect = 5;
  1414.     kMovieImportSetDimensionsSelect = 6;
  1415.     kMovieImportSetChunkSizeSelect = 7;
  1416.     kMovieImportSetProgressProcSelect = 8;
  1417.     kMovieImportSetAuxiliaryDataSelect = 9;
  1418.     kMovieImportSetFromScrapSelect = $A;
  1419.     kMovieImportDoUserDialogSelect = $B;
  1420.     kMovieImportSetDurationSelect = $C;
  1421.     kMovieImportGetAuxiliaryDataTypeSelect = $D;
  1422.     kMovieImportValidateSelect     = $E;
  1423.  
  1424.     kMovieExportToHandleSelect = $80;
  1425.     kMovieExportToFileSelect = $81;
  1426.     kMovieExportDoUserDialogSelect = $82;
  1427.     kMovieExportGetAuxiliaryDataSelect = $83;
  1428.     kMovieExportSetProgressProcSelect = $84;
  1429.     kMovieExportSetSampleDescriptionSelect = $85;
  1430.     
  1431.     movieImportCreateTrack = 1;
  1432.     movieImportInParallel = 2;
  1433.     movieImportMustUseTrack = 4;
  1434.  
  1435.     movieImportResultUsedMultipleTracks = 8;
  1436.  
  1437.  
  1438. FUNCTION    MovieImportHandle(ci:MovieImportComponent; dataH: Handle; theMovie: Movie; targetTrack: Track; VAR usedTrack: Track; atTime: TimeValue; VAR addedDuration: TimeValue;
  1439.         inFlags: LONGINT; VAR outFlags: LONGINT): ComponentResult;
  1440.     INLINE $2F3C,$20,$1,$7000,$A82A;
  1441.  
  1442. FUNCTION    MovieImportFile(ci:MovieImportComponent; theFile:FSSpec; theMovie: Movie; targetTrack: Track; VAR usedTrack: Track; atTime: TimeValue; VAR addedDuration: TimeValue;
  1443.     inFlags: LONGINT; VAR outFlags: LONGINT): ComponentResult;
  1444.     INLINE $2F3C,$20,$2,$7000,$A82A;
  1445.  
  1446. FUNCTION    MovieImportSetSampleDuration(ci:MovieImportComponent; duration: TimeValue; scale: TimeScale): ComponentResult;
  1447.     INLINE $2F3C,$8,$3,$7000,$A82A;
  1448.  
  1449. FUNCTION    MovieImportSetSampleDescription(ci:MovieImportComponent; desc: SampleDescriptionHandle; mediaType: OSType): ComponentResult;
  1450.     INLINE $2F3C,$8,$4,$7000,$A82A;
  1451.  
  1452. FUNCTION    MovieImportSetMediaFile(ci:MovieImportComponent; alias: AliasHandle): ComponentResult;
  1453.     INLINE $2F3C,$4,$5,$7000,$A82A;
  1454.  
  1455. FUNCTION    MovieImportSetDimensions(ci:MovieImportComponent; width,height: Fixed): ComponentResult;
  1456.     INLINE $2F3C,$8,$6,$7000,$A82A;
  1457.  
  1458. FUNCTION    MovieImportSetChunkSize(ci:MovieImportComponent; chunkSize:LONGINT): ComponentResult;
  1459.     INLINE $2F3C,$4,$7,$7000,$A82A;
  1460.  
  1461. FUNCTION    MovieImportSetProgressProc(ci:MovieImportComponent; proc: ProcPtr; refCon: LONGINT): ComponentResult;
  1462.     INLINE $2F3C,$8,$8,$7000,$A82A;
  1463.  
  1464. FUNCTION    MovieImportSetAuxiliaryData(ci:MovieImportComponent; data: Handle; handleType: OSType): ComponentResult;
  1465.     INLINE    $2F3C,$8,$9,$7000,$A82A;
  1466.  
  1467. FUNCTION    MovieImportSetFromScrap(ci:MovieImportComponent; fromScrap: BOOLEAN): ComponentResult;
  1468.     INLINE    $2F3C,$2,$A,$7000,$A82A;
  1469.  
  1470. FUNCTION    MovieImportDoUserDialog(ci:MovieImportComponent; srcFile: FSSpec; data: Handle; VAR canceled: BOOLEAN): ComponentResult;
  1471.     INLINE    $2F3C,$C,$B,$7000,$A82A;
  1472.  
  1473. FUNCTION    MovieImportSetDuration(ci:MovieImportComponent; duration: TimeValue):ComponentResult;
  1474.  INLINE $2F3C,$4,$C,$7000,$A82A;
  1475.  
  1476. FUNCTION    MovieImportGetAuxiliaryDataType(ci : MovieImportComponent; VAR auxType : OSType) : ComponentResult;
  1477.  INLINE $2F3C,$4,$D,$7000,$A82A;
  1478.  
  1479. FUNCTION     MovieImportValidate(ci : MovieImportComponent ;  VAR theFile : FSSpec; theData : Handle ; VAR valid : BOOLEAN) : ComponentResult;
  1480.  INLINE $2F3C,$C,$E,$7000,$A82A;
  1481.  
  1482. FUNCTION    MovieExportToHandle(ci:MovieExportComponent; data: Handle; theMovie: Movie; onlyThisTrack: Track; startTime: TimeValue; duration: TimeValue): ComponentResult;
  1483.     INLINE    $2F3C,$14,$80,$7000,$A82A;
  1484.  
  1485. FUNCTION    MovieExportToFile(ci:MovieExportComponent;dstFile: FSSpec; theMovie: Movie; onlyThisTrack: Track; startTime: TimeValue; duration: TimeValue): ComponentResult;
  1486.     INLINE    $2F3C,$14,$81,$7000,$A82A;
  1487.  
  1488. FUNCTION    MovieExportDoUserDialog(ci:MovieExportComponent; dstFile: FSSpec; data: Handle; VAR canceled: BOOLEAN): ComponentResult;
  1489.     INLINE    $2F3C,$C,$82,$7000,$A82A;
  1490.  
  1491. FUNCTION    MovieExportGetAuxiliaryData(ci:MovieExportComponent; dstFile: Handle; VAR handleType: OSType): ComponentResult;
  1492.     INLINE    $2F3C,$8,$83,$7000,$A82A;
  1493.  
  1494. FUNCTION    MovieExportSetProgressProc(ci:MovieExportComponent; proc: ProcPtr; refCon: LONGINT): ComponentResult;
  1495.     INLINE    $2F3C,$8,$84,$7000,$A82A;
  1496.  
  1497. FUNCTION    MovieExportSetSampleDescription(ci:MovieExportComponent; 
  1498.     desc: SampleDescriptionHandle; mediaType: OSType):ComponentResult; 
  1499.     INLINE    $2F3C,$8,$85,$7000,$A82A;
  1500.  
  1501. TYPE
  1502. TextDisplayData = RECORD 
  1503.     displayFlags            :    LONGINT;
  1504.     textJustification        :    LONGINT;
  1505.     bgColor                    :    RGBColor;
  1506.     textBox                    :    Rect;
  1507.     beginHilite                :    INTEGER;
  1508.     endHilite                :    INTEGER;
  1509.     hiliteColor                :    RGBColor;
  1510.     doHiliteColor            :    BOOLEAN;
  1511.     scrollDelayDur            :    TimeValue;
  1512.     dropShadowOffset        :    Point;
  1513.     dropShadowTransparency    :    INTEGER;
  1514.  END;
  1515.  
  1516. TextExportComponent = ComponentInstance;
  1517.  
  1518. FUNCTION TextExportGetDisplayData(ci : TextExportComponent ; VAR textDisplay: TextDisplayData):ComponentResult;
  1519.     INLINE    $2F3C,$4,$100,$7000,$A82A;
  1520.  
  1521. TYPE
  1522.  
  1523. pnotComponent = ComponentInstance;
  1524.  
  1525. CONST
  1526. pnotComponentWantsEvents = 1;
  1527. pnotComponentNeedsNoCache = 2;
  1528.  
  1529. kPreviewOpenSelector = 0;
  1530. kPreviewCloseSelector = -1;
  1531. kPreviewCanDoSelector = -2;
  1532. kPreviewVersionSelector = -3; 
  1533.  
  1534. kPreviewShowDataSelector = 1;
  1535. kPreviewMakePreviewSelector = 2;
  1536. kPreviewMakePreviewReferenceSelector = 3;
  1537. kPreviewEventSelector = 4;
  1538.  
  1539. ShowFilePreviewComponentType = 'pnot';
  1540. CreateFilePreviewrComponentType = 'pmak';
  1541.  
  1542. FUNCTION PreviewShowData(p:pnotComponent; dataType:OSType; data:Handle;
  1543.         VAR inHere:Rect): ComponentResult;
  1544.     INLINE    $2F3C,$C,$1,$7000,$A82A;
  1545.  
  1546. FUNCTION PreviewMakePreview(p:pnotComponent; VAR previewType:OSType; VAR previewResult: Handle;
  1547.             VAR sourceFile:FSSpec; progress:ProgressProcRecordPtr ): ComponentResult;
  1548.     INLINE    $2F3C,$10,$2,$7000,$A82A;
  1549.  
  1550. FUNCTION PreviewMakePreviewReference(p:pnotComponent; VAR previewType:OSType; VAR reID:INTEGER;
  1551.             VAR sourceFile: FSSpec): ComponentResult;
  1552.     INLINE    $2F3C,$C,$3,$7000,$A82A;
  1553.  
  1554. FUNCTION PreviewEvent(p:pnotComponent; VAR e:EventRecord; VAR handledEvent:BOOLEAN): ComponentResult;
  1555.     INLINE    $2F3C,$8,$4,$7000,$A82A;
  1556.  
  1557.  
  1558. {$ENDC} { UsingQuickTimeComponents }
  1559.  
  1560. {$IFC NOT UsingIncludes}
  1561.  END.
  1562. {$ENDC}
  1563.  
  1564.